Computer clusters may be employed for a myriad of tasks from performing operations simultaneously to conducting complex computations. A computer cluster may comprise a group of loosely or tightly coupled central processing units (CPUs) which may operate as a single system. For example, a loosely coupled system may be two or more CPUs on independent servers with a loose form of interconnection in between components. A tightly coupled system may be a symmetric multi-processing (SMP) system with an interconnection such as QuickPath Interconnect (QPI) or HyperTransport (HT). Multiple CPUs may be connected on a single disk or via a network in a data center.
In multi-CPU systems without coherent shared memory, it may be desirable to share large data segments between applications running on separate CPUs. Conventional data transfer in multi-CPU systems may be conducted by direct communication between CPUs; however, this approach may be limited by the amount of data that may be sent in a message between processing units as well as the transfer speed. A centralized server may be utilized to store large amounts of data during transfer; however, there may be an increase in complexity in navigating through different protocols to store on devices such as solid-state drives (SSD), which have relatively slow write times. Additionally, there may be a large overhead and high latency in these inter-CPU communication methods.